var Module_approval = function(options){
    this.module = options.module;
    this.controller = options.controller;
	this.permision = options.permision;
    this.urlPath = baseUrl + '/' + this.module + '/' + this.controller;
    this.initialize();
    this.sendding = false;
    this.obGridView = $("#jqxgrid");
}

Module_approval.prototype.initialize = function(){
    var self = this;
    $("#refresh").unbind('click').click(function(){
        self.obGridView.jqxGrid('updatebounddata','filter');
    });
	$("#processrow").unbind('click').click(function(){self.process()});
}
Module_approval.prototype.initializeJqxGrid = function(){
    

}

$.extend(Module_approval.prototype, {
    _eSaveProcess: function(){
        var self = this;
		$('.blApproved').hide();
		$(".ProcessTypeRadio").unbind('click').click(function(){
			var select = $(this).val();
			if(select==='150005'){
				$('.blApproved').show();
			}else{
				$('.blApproved').hide();
			}
        });
        $("#clsaveprocess").unbind('click').click(function(){
            if($('#frmUpdate')[0].checkValidity()){
                self.saveProcess();
                return false;
            }
        });	
    },
} );


Module_approval.prototype.process = function(){
    var self = this
        ,url = this.urlPath + '/process'
        ,SendID=''
        ,count = 0
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    for (var i = 0; i < rows.length; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
		SendID = row.SendID;
        count++;
    }
 //alert(list); return false;
    if(count == 0){
        alert('Bạn chưa chọn một đối tượng nào để xử lý!', 'Thông báo');
        return false;
    }
    if(count >1){
        alert('Bạn chỉ được chọn một đối tượng để xử lý!', 'Thông báo');
        return false;
    }
    $.ajax({
        url: url,
        type: "POST",
        data: {SendID:SendID},
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
			self.generalProcess(SendID);
			self.ShowHideRadio(self.permision);			
            self._eSaveProcess();
            dLayout.hideLoadPage();		
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}

Module_approval.prototype.ShowHideRadio = function(ShowValue){
	var oForm = $('form#frmUpdate');
	var arrShowValue = ShowValue.split(',');
	$(oForm).find('input[type="radio"][name="ProcessType[]"]').each(function(){
		if(jQuery.inArray($(this).val(),arrShowValue)<0){
			$(this).parent().parent().remove();
		}
	})
}

Module_approval.prototype.generalProcess = function(SendID){
	//Them doi tuong the hien tien do
	var html = '<div class="frm_process">';
		html += '<div class="block">';
		html += '<fieldset id="fieldset-row_process">';
		html += '<legend>Thông tin quá trình dự thảo</legend>';
        html += '<div id="jqxWidget">';
        html += '<div id="jqxgridProcess"></div>';
        html += '</div></fieldset></div></div>';
	$('#frmUpdate div:last').after(html);
	//Hien thi du lieu
	var url = this.urlPath + '/processdata'
    $.ajax({
        url: url,
        type: "POST",
        data: {SendID:SendID},
        success: function(data){
            // prepare the data
			//console.log(data);return false;
            var source =
            {
                datatype: "json",
                datafields: [
                    { name: 'WorkID', type: 'string' },
					{ name: 'StaffID', type: 'string' },
                    { name: 'PositionName', type: 'string' },
					{ name: 'WorkType', type: 'string' },
					{ name: 'WorkDate', type: 'string' },
					{ name: 'Result', type: 'string' }
                ],
                localdata: data
            };
            var dataAdapter = new $.jqx.dataAdapter(source);
			var objGrid = $('#jqxgridProcess');
			$(objGrid).on('bindingcomplete', function(event) {
				$(this).jqxGrid('localizestrings', dLayout._CONST.localizationobj);
				$(objGrid).jqxGrid("clearselection");
				var ajaxurl = baseUrl + '/ajax/openfile/';
				setAttachEven(objGrid,ajaxurl);
			  });
            $(objGrid).jqxGrid(
            {
                width: '100%',
				height: '200',
				theme: 'energyblue',
                source: dataAdapter,
				altrows: true,
                columns: [
					{ text: 'Thời gian', datafield: 'WorkDate', width: '20%', cellsalign: 'center', align: 'center'  },
                    { text: 'Người thực hiện', datafield: 'PositionName', width: '20%' },
					{ text: 'Hình thức xử lý', datafield: 'WorkType', width: '20%' },
                    { text: 'Nội dung chi tiết', datafield: 'Result', width: '40%'}
                ]
            });
			dLayout.hideLoadPage();	
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    });	
}

Module_approval.prototype.saveProcess = function(){
    var self = this
        ,url = this.urlPath + '/saveprocess'
        ,xmlData = getDataXml($('form#frmUpdate'))
        ,data = $('form#frmUpdate').serializeArray();
    data.push({name:'XmlData',value:xmlData});
    $.ajax({
        url: url,
        type: "POST",
        data: data,
        // dataType: 'json',
        success: function(errors){
            errors = $.parseJSON(errors);
            if(errors.length){
               alert($('label[for="Code"]').text() + ' ' + errors['0']['Code']);
            }else{
                document.getElementById('frmUpdate').reset();
                $('#Tab01').trigger('click');
                self.obGridView.jqxGrid('updatebounddata','filter');
            }
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState; // ngăn việc chuyển trang thực sự nếu trình duyệt có hỗ trợ pushState
}